From 09563d4d2059fbb521ca7b52ff3f1bd4ad7109b9 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 15 Apr 2024 19:38:20 -0700 Subject: feat(badges): source and designer fields --- src/routes/user/[user]/badges/+page.svelte | 128 ++++++++++++++++++----------- 1 file changed, 82 insertions(+), 46 deletions(-) (limited to 'src/routes/user/[user]') diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index d55068e4..4aa205d9 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -66,6 +66,8 @@ link: string; description: string; image: string; + source: string; + designer: string; } interface AWCBadgesGroup { @@ -208,6 +210,8 @@ const time = document.querySelector('input[type="datetime-local"]') as HTMLInputElement; const category = document.querySelector('input[name="category"]') as HTMLInputElement; const hidden = document.querySelector('input[name="hidden"]') as HTMLInputElement; + const source = document.querySelector('input[name="source"]') as HTMLInputElement; + const designer = document.querySelector('input[name="designer"]') as HTMLInputElement; if (!imageURL.value) { error = 'Image URL cannot be empty.'; @@ -235,7 +239,9 @@ : '' }${ selectedBadge && selectedBadge.id ? `&update=${encodeURIComponent(selectedBadge.id)}` : '' - }&hidden=${hidden.value === 'Hidden'}`, + }&hidden=${hidden.value === 'Hidden'}${ + source.value.length > 0 ? `&source=${encodeURIComponent(source.value)}` : '' + }${designer.value.length > 0 ? `&designer=${encodeURIComponent(designer.value)}` : ''}`, { method: 'PUT' } @@ -659,50 +665,6 @@ /> - ({ - name: hidden ? 'Hidden' : 'Shown', - url: '#', - onClick: () => { - const hiddenInput = document.querySelector('input[name="hidden"]'); - - if (hiddenInput instanceof HTMLInputElement) - hiddenInput.value = hidden ? 'Hidden' : 'Shown'; - } - }))} - header={false} - center={false} - > - - - - - - {#if selectedBadge} - {$locale().user.badges.editMode.or} - - {/if} Must be full date and time, defaults to now if any fields empty + +

+ +

+ + + ({ + name: hidden ? 'Hidden' : 'Shown', + url: '#', + onClick: () => { + const hiddenInput = document.querySelector('input[name="hidden"]'); + + if (hiddenInput instanceof HTMLInputElement) + hiddenInput.value = hidden ? 'Hidden' : 'Shown'; + } + }))} + header={false} + center={false} + > + + + + + + {#if selectedBadge} + {$locale().user.badges.editMode.or} + + {/if} +
{/if} {/if} @@ -753,8 +782,11 @@ badge.time ? $locale().dateFormatter(databaseTimeToDate(badge.time)) : '' - }${badge.description ? `\n${badge.description}` : ''}`} + }${badge.description ? `, ${badge.description}` : ''}${ + badge.designer ? `\nDesigner: ${badge.designer}` : '' + }${badge.source ? `\nSource: ${badge.source}` : ''}`} use:tooltip + data-tooltipPin={`badge-${badge.id}`} > -- cgit v1.2.3